#include "sms.h"
#include "shared.h"
#include "vdp.h"
#include "util.h"
#include "pad.h"
#include "main_map.h"

void bank1_load_bg();
BYTE bank1_cheat_inputbox(char* dst);
void bank1_print_hex(char* in);
void bank1_dump_hex(char* in);

/*
 * Task dispatcher for this bank
 */
BYTE dispatch(WORD task,char* user_data)
{
    switch (task)
    {
        case TASK_LOAD_BG:
            bank1_load_bg();
		return 1;

		case TASK_EXEC_CHEAT_INPUTBOX:
			return bank1_cheat_inputbox(user_data);

		case TASK_PRINT_HEX:
			bank1_print_hex(user_data);
		return 1;

		case TASK_DUMP_HEX:
			bank1_dump_hex(user_data);
		return 1;
    }

	return 0;
}

/*
 * Pattern data for the background
 */
const BYTE menu_pat[] =
{
    0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,
    0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,
    0x1F,0xE0,0xE0,0x1F,0x1F,0xE0,0xE0,0x1F,0x1F,0xE0,0xE0,0x1F,0x1F,0xE0,0xE0,0x1F,
    0x1F,0xE0,0xE0,0x1F,0x00,0xE0,0xE0,0x00,0x00,0xC0,0xC0,0x00,0x40,0x80,0x80,0x40,
    0xFF,0x00,0x00,0xFF,0xFE,0x01,0x01,0xFE,0xF8,0x07,0x07,0xF8,0xE0,0x1F,0x1F,0xE0,
    0x80,0x7F,0x7F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x80,0x70,0x70,0x8F,0x00,0xFC,0xFC,0x03,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,
    0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0xC0,0xC0,0x3F,
    0x00,0xF0,0xF0,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x1F,0x00,0x00,0xFF,0x1F,0x00,0x00,0xFF,0x1F,0x00,0x00,0xFF,0x1F,0x00,0x00,0xFF,
    0x1F,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x8F,0x7F,0x70,0x8F,0x03,0xFF,0xFC,0x03,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,
    0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0x00,0xFF,0x3F,0xFF,0xC0,0x3F,
    0x0F,0xFF,0xF0,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0xE0,0xFF,0x00,0xFF,0xE0,0xFF,0x00,0xFF,0xE0,0xFF,0x00,0xFF,0xE0,0xFF,0x00,0xFF,
    0xE0,0xFF,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0xFF,0x00,0xFF,0x00,0xFF,0x01,0xFE,0x00,0xFF,0x07,0xF8,0x00,0xFF,0x1F,0xE0,
    0x00,0xFF,0x7F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x0F,0xFF,0x70,0x8F,0x03,0xFF,0xFC,0x03,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,
    0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0xFF,0x00,0xFF,0x00,0xFE,0x01,0xFF,0x00,0xF8,0x07,0xFF,0x00,0xE0,0x1F,0xFF,
    0x00,0x80,0x7F,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x0F,0x8F,0x70,0xFF,0x03,0x03,0xFC,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,
    0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0x00,0xFF,0x3F,0x3F,0xC0,0xFF,
    0x0F,0x0F,0xF0,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0xFF,0x00,0xFF,0x00,0xFE,0x01,0xFF,0x00,0xF8,0x07,0xFF,0x00,0xE0,0x1F,0xFF,
    0x00,0x80,0x7F,0xFF,0x00,0x00,0x03,0x03,0x00,0x00,0x01,0x01,0x00,0x00,0x01,0x01,
    0x07,0x87,0x78,0xFF,0x01,0x01,0xFE,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,
    0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,
    0x01,0xFE,0xFE,0x01,0x07,0xF8,0xF8,0x07,0x1F,0xE0,0xE0,0x1F,0x7F,0x80,0x80,0x7F,
    0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,
    0xC0,0x00,0x00,0xC0,0xC0,0x00,0x00,0xC0,0xC0,0x00,0x00,0xC0,0xC0,0x00,0x00,0xC0,
    0xC0,0x00,0x00,0xC0,0xC0,0x00,0x00,0xC0,0xC0,0x00,0x00,0xC0,0xC0,0x00,0x00,0xC0,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x01,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x01,0x01,
    0x00,0x00,0x01,0x01,0x01,0x01,0x00,0x01,0x01,0x01,0x00,0x01,0x01,0x01,0x00,0x01,
    0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,
    0x00,0x01,0xFE,0xFF,0x80,0x87,0x78,0xFF,0xF0,0xFF,0x00,0xFF,0xF0,0xFF,0x00,0xFF,
    0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,
    0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,
    0x01,0x01,0x00,0x01,0x01,0x01,0x00,0x01,0x01,0x01,0x00,0x01,0x01,0x01,0x00,0x01,
    0x01,0x01,0x00,0x01,0x01,0x01,0x00,0x01,0x01,0x01,0x00,0x01,0x01,0x01,0x00,0x01,
    0xF0,0xFF,0x00,0xFF,0xF0,0xFF,0x00,0xFF,0xF0,0xFF,0x00,0xFF,0xF0,0xFF,0x00,0xFF,
    0xF0,0xFF,0x00,0xFF,0xF0,0xFF,0x00,0xFF,0xF0,0xFF,0x00,0xFF,0xF0,0xFF,0x00,0xFF,
    0xFF,0x00,0x00,0xFF,0xFC,0x00,0x03,0xFC,0xF0,0x00,0x0F,0xF0,0xC0,0x00,0x3F,0xC0,
    0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,
    0x00,0x00,0xC0,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0xC0,0x00,
    0x00,0x00,0xC0,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0xFF,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0xFF,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x1E,0xE1,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x01,0xE1,0x1E,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFE,0xFE,0x01,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x01,0x01,0xFE,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x1E,0x01,0xFF,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFE,0xFF,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0xFE,0x01,0xFF,
    0x01,0x01,0x00,0x01,0x01,0x01,0x00,0x01,0x01,0x01,0x00,0x01,0x01,0x01,0x00,0x01,
    0x01,0x01,0x00,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x03,0x03,0x00,0x01,0xFE,0xFF,
    0xF0,0xFF,0x00,0xFF,0xF0,0xFF,0x00,0xFF,0xF0,0xFF,0x00,0xFF,0xF0,0xFF,0x00,0xFF,
    0xF0,0xFE,0x01,0xFF,0x70,0x78,0x87,0xFF,0x18,0x78,0x87,0xFF,0x1E,0xFE,0x01,0xFF,
    0x80,0x80,0x7F,0x00,0xE0,0xE0,0x1F,0x00,0xF8,0xF8,0x07,0x00,0xFE,0xFE,0x01,0x00,
    0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,
    0x00,0x00,0xE0,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x01,0x00,0xFF,0x00,
    0x87,0x80,0x7F,0x00,0xFF,0xF0,0x0F,0x00,0xFF,0xF0,0x0F,0x00,0xFF,0xF0,0x0F,0x00,
    0x00,0x00,0x00,0x00,0x1F,0x00,0xFF,0x00,0x7F,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,
    0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,
    0x00,0x00,0x00,0x00,0xFF,0x1F,0xE0,0x00,0xFF,0x1F,0xE0,0x00,0xFF,0x1F,0xE0,0x00,
    0xFF,0x1F,0xE0,0x00,0xFF,0x1F,0xE0,0x00,0xFF,0x1F,0xE0,0x00,0xFF,0x1F,0xE0,0x00,
    0x00,0x00,0x00,0x00,0xE0,0xE0,0x1F,0x00,0xF8,0xF8,0x07,0x00,0xFE,0xFE,0x01,0x00,
    0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x01,0x00,0xFF,0x00,
    0x87,0x80,0x7F,0x00,0xFF,0xF0,0x0F,0x00,0xFF,0xF0,0x0F,0x00,0xFF,0xF0,0x0F,0x00,
    0x00,0x00,0x00,0x00,0xE0,0x00,0xE0,0x1F,0xE0,0x00,0xE0,0x1F,0xE0,0x00,0xE0,0x1F,
    0xE0,0x00,0xE0,0x1F,0xE0,0x00,0xE0,0x1F,0xE0,0x00,0xE0,0x1F,0xE0,0x00,0xE0,0x1F,
    0x00,0x00,0x00,0x00,0x00,0x1F,0x1F,0xE0,0x00,0x07,0x07,0xF8,0x00,0x01,0x01,0xFE,
    0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,
    0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x01,0xFE,0xFE,0x01,
    0x07,0x78,0x78,0x87,0x0F,0x00,0x00,0xFF,0x0F,0x00,0x00,0xFF,0x0F,0x00,0x00,0xFF,
    0x00,0x00,0x00,0x00,0x1F,0xE0,0xE0,0x1F,0x7F,0x80,0x80,0x7F,0xFF,0x00,0x00,0xFF,
    0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,
    0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0xFF,0xE0,0x00,0x00,0xFF,0xE0,0x00,0x00,0xFF,
    0xE0,0x00,0x00,0xFF,0xE0,0x00,0x00,0xFF,0xE0,0x00,0x00,0xFF,0xE0,0x00,0x00,0xFF,
    0x00,0x00,0x00,0x00,0xFF,0x1F,0x00,0xFF,0xFF,0x1F,0x00,0xFF,0xFF,0x1F,0x00,0xFF,
    0xFF,0x1F,0x00,0xFF,0xFF,0x1F,0x00,0xFF,0xFF,0x1F,0x00,0xFF,0xFF,0x1F,0x00,0xFF,
    0x00,0x00,0x00,0x00,0xE0,0xE0,0x1F,0xFF,0xF8,0xF8,0x07,0xFF,0xFE,0xFE,0x01,0xFF,
    0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0x00,0xFF,
    0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x01,0xFE,0xFF,
    0x80,0x87,0x78,0xFF,0xF0,0xFF,0x00,0xFF,0xF0,0xFF,0x00,0xFF,0xF0,0xFF,0x00,0xFF,
    0x00,0x00,0x00,0x00,0x00,0x1F,0xE0,0xFF,0x00,0x7F,0x80,0xFF,0x00,0xFF,0x00,0xFF,
    0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,
    0x00,0x00,0x00,0x00,0x1F,0xFF,0x00,0xFF,0x1F,0xFF,0x00,0xFF,0x1F,0xFF,0x00,0xFF,
    0x1F,0xFF,0x00,0xFF,0x1F,0xFF,0x00,0xFF,0x1F,0xFF,0x00,0xFF,0x1F,0xFF,0x00,0xFF,
    0x00,0x03,0x00,0x03,0x00,0x1F,0xE0,0xFF,0x00,0x7F,0x80,0xFF,0x00,0xFF,0x00,0xFF,
    0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,
    0x1F,0xFF,0x00,0xFF,0x1F,0xFF,0x00,0xFF,0x1F,0xFF,0x00,0xFF,0x1F,0xFF,0x00,0xFF,
    0x1F,0xFF,0x00,0xFF,0x1F,0xFF,0x00,0xFF,0x1F,0xFF,0x00,0xFF,0x1F,0xFF,0x00,0xFF,
    0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,
    0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,
    0xFF,0xF0,0x0F,0x00,0xFF,0xF0,0x0F,0x00,0xFF,0xF0,0x0F,0x00,0xFF,0xF0,0x0F,0x00,
    0xFF,0xF0,0x0F,0x00,0xFF,0xF0,0x0F,0x00,0xFF,0xF0,0x0F,0x00,0xE0,0xE0,0x00,0x00,
    0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,
    0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,
    0xFF,0x1F,0xE0,0x00,0xFF,0x1F,0xE0,0x00,0xFF,0x1F,0xE0,0x00,0xFF,0x1F,0xE0,0x00,
    0xFF,0x1F,0xE0,0x00,0xFF,0x1F,0xE0,0x00,0xFF,0x3F,0xF8,0x00,0x00,0x00,0x00,0x00,
    0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,
    0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,
    0xFF,0xF0,0x0F,0x00,0xFF,0xF0,0x0F,0x00,0xFF,0xF0,0x0F,0x00,0xFF,0xF0,0x0F,0x00,
    0xFF,0xF0,0x0F,0x00,0xFF,0xF0,0x0F,0x00,0xFF,0xF0,0x0F,0x00,0x00,0x00,0x00,0x00,
    0xE0,0x00,0xE0,0x1F,0xE0,0x00,0xE0,0x1F,0xE0,0x00,0xE0,0x1F,0xE0,0x00,0xE0,0x1F,
    0xE0,0x00,0xE0,0x1F,0xE0,0x00,0xE0,0x1F,0xC0,0x00,0xF8,0x07,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,
    0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,
    0x0F,0x00,0x00,0xFF,0x0F,0x00,0x00,0xFF,0x0F,0x00,0x00,0xFF,0x0F,0x00,0x00,0xFF,
    0x0F,0x00,0x00,0xFF,0x0F,0x00,0x00,0xFF,0x0F,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,
    0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,
    0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,
    0xE0,0x00,0x00,0xFF,0xE0,0x00,0x00,0xFF,0xE0,0x00,0x00,0xFF,0xE0,0x00,0x00,0xFF,
    0xE0,0x00,0x00,0xFF,0xE0,0x00,0x00,0xFF,0xC0,0x38,0x38,0xC7,0x00,0x00,0x00,0x00,
    0xFF,0x1F,0x00,0xFF,0xFF,0x1F,0x00,0xFF,0xFF,0x1F,0x00,0xFF,0xFF,0x1F,0x00,0xFF,
    0xFF,0x1F,0x00,0xFF,0xFF,0x1F,0x00,0xFF,0xC7,0x3F,0x38,0xC7,0x00,0x00,0x00,0x00,
    0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0x00,0xFF,
    0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0x00,0xFF,0x00,0x00,0x00,0x00,
    0xF0,0xFF,0x00,0xFF,0xF0,0xFF,0x00,0xFF,0xF0,0xFF,0x00,0xFF,0xF0,0xFF,0x00,0xFF,
    0xF0,0xFF,0x00,0xFF,0xF0,0xFF,0x00,0xFF,0xF0,0xFF,0x00,0xFF,0x00,0x00,0x00,0x00,
    0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,
    0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0x00,0x00,0x00,
    0x1F,0xFF,0x00,0xFF,0x1F,0xFF,0x00,0xFF,0x1F,0xFF,0x00,0xFF,0x1F,0xFF,0x00,0xFF,
    0x1F,0xFF,0x00,0xFF,0x1F,0xFF,0x00,0xFF,0x07,0xFF,0x38,0xC7,0x00,0x00,0x00,0x00,
    0x1F,0xFF,0x00,0xFF,0x1F,0xFF,0x00,0xFF,0x1F,0xFF,0x00,0xFF,0x1F,0xFF,0x00,0xFF,
    0x1F,0xFF,0x00,0xFF,0x1F,0xFF,0x00,0xFF,0x07,0xC7,0x38,0xFF,0x00,0x00,0x00,0x00,
    0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,
    0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0x03,0x00,0x03,
    0x1F,0xFF,0x00,0xFF,0x1F,0xFF,0x00,0xFF,0x1F,0xFF,0x00,0xFF,0x1F,0xFF,0x00,0xFF,
    0x1F,0xFF,0x00,0xFF,0x1F,0xFF,0x00,0xFF,0x07,0xC7,0x38,0xFF,0x01,0x01,0xFE,0xFF,
    0xFF,0xFF,0x80,0x00,0xFF,0xFF,0xE0,0x00,0xFF,0xFF,0xF8,0x00,0xFF,0xFF,0xFE,0x00,
    0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0x00,0xFF,0xFC,0xFC,0x00,
    0xD0,0xD0,0x00,0x00,0xC8,0xC0,0x08,0x00,0xC4,0xC0,0x04,0x00,0xC3,0xC0,0x03,0x00,
    0xC2,0xC2,0x82,0x00,0xC2,0xC2,0xC2,0x00,0xC0,0x02,0x00,0x00,0xC0,0x02,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFE,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xF0,0x0F,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x01,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x00,0xFF,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0xFE,0x01,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFF,0xFE,0x01,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0x00,0xFF,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0xFE,0xFF,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x04,0x01,0x05,0x00,0x00,0x09,0x09,0x00,0x00,0x11,0x11,0x00,0x00,0xE1,0xE1,
    0x00,0x00,0x21,0x21,0x00,0x00,0x21,0x21,0x00,0x00,0x21,0x21,0x00,0x00,0x21,0x21,
    0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,
    0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,
    0xFF,0xF0,0xF0,0x00,0xFF,0xC0,0xC0,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,
    0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,
    0xC0,0x02,0x00,0x00,0xC0,0x02,0x00,0x00,0xC0,0x02,0x00,0x00,0xC0,0x02,0x00,0x00,
    0xC0,0x02,0x00,0x00,0xC0,0x02,0x00,0x00,0xC0,0x02,0x00,0x00,0xC0,0x02,0x00,0x00,
    0x20,0x20,0x01,0x21,0x20,0x20,0x01,0x21,0x21,0x21,0x00,0x21,0x21,0x21,0x00,0x21,
    0x21,0x21,0x00,0x21,0x21,0x21,0x00,0x21,0x21,0x21,0x00,0x21,0x21,0x21,0x00,0x21,
    0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0xC0,0xC3,0x3C,0xFF,
    0xF8,0xFF,0x00,0xFF,0xF8,0xFF,0x00,0xFF,0xF8,0xFF,0x00,0xFF,0xF8,0xFF,0x00,0xFF,
    0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,
    0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x01,0x01,0x00,
    0xC0,0x02,0x00,0x00,0xC0,0x02,0x00,0x00,0xC0,0x02,0x00,0x00,0xC0,0x02,0x00,0x00,
    0xC0,0x02,0x00,0x00,0xC0,0x02,0x00,0x00,0xC2,0x42,0x42,0x00,0xC2,0xC2,0xC2,0x00,
    0x21,0x21,0x00,0x21,0x21,0x21,0x00,0x21,0x21,0x21,0x00,0x21,0x21,0x21,0x00,0x21,
    0x21,0x21,0x00,0x21,0x21,0x21,0x00,0x21,0x21,0x21,0x00,0x21,0x21,0x21,0x00,0x21,
    0xF8,0xFF,0x00,0xFF,0xF8,0xFF,0x00,0xFF,0xF8,0xFF,0x00,0xFF,0xF8,0xFF,0x00,0xFF,
    0xF8,0xFF,0x00,0xFF,0xF8,0xFF,0x00,0xFF,0xF8,0xFF,0x00,0xFF,0xF8,0xFF,0x00,0xFF,
    0xFF,0x07,0x07,0x00,0xFF,0x1F,0x1F,0x00,0xFF,0x7F,0x7F,0x00,0xFF,0xFF,0xFF,0x00,
    0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0x00,0x3F,0xFF,0x3F,0x00,0x0F,0xFF,0x0F,0x00,
    0xC2,0xC2,0xC2,0x00,0xC2,0xC2,0xC2,0x00,0xC2,0xC2,0xC2,0x00,0xC2,0xC2,0xC2,0x00,
    0xC2,0xC2,0xC2,0x00,0xC2,0xC2,0xC2,0x00,0xC2,0xC2,0xC2,0x00,0xC2,0xC2,0xC2,0x00,
    0x01,0x01,0x20,0x21,0x01,0x01,0x20,0x21,0x00,0x00,0x21,0x21,0x00,0x00,0x21,0x21,
    0x00,0x00,0x21,0x21,0x00,0x00,0x21,0x21,0x00,0x01,0x20,0x21,0x00,0x01,0x20,0x21,
    0xF8,0xFF,0x00,0xFF,0xF8,0xFF,0x00,0xFF,0xF8,0xFF,0x00,0xFF,0x38,0x3C,0xC3,0xFF,
    0x0C,0x3C,0xC3,0xFF,0x0F,0xFF,0x00,0xFF,0x0F,0xFF,0x00,0xFF,0x0F,0xFF,0x00,0xFF,
    0x03,0xFF,0x03,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,
    0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,
    0xC2,0xC2,0xC2,0x00,0xC2,0xC2,0xC2,0x00,0x02,0xC0,0x00,0x00,0x02,0xC0,0x00,0x00,
    0x02,0xC0,0x00,0x00,0x02,0xC0,0x00,0x00,0x02,0xC0,0x00,0x00,0x02,0xC0,0x00,0x00,
    0x00,0x21,0x00,0x21,0x00,0x21,0x00,0x21,0x00,0x21,0x00,0x21,0x00,0x21,0x00,0x21,
    0x00,0x21,0x00,0x21,0x00,0x21,0x00,0x21,0x00,0x21,0x00,0x21,0x00,0x21,0x00,0x21,
    0x0F,0xFF,0x00,0xFF,0x0F,0xFF,0x00,0xFF,0x0F,0xFF,0x00,0xFF,0x0F,0xFF,0x00,0xFF,
    0x0F,0xFF,0x00,0xFF,0x0F,0xFF,0x00,0xFF,0x0F,0xFF,0x00,0xFF,0x0F,0xFF,0x00,0xFF,
    0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,
    0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0xC0,0xFF,0xC0,0x00,0xF0,0xFF,0xF0,0x00,
    0x02,0xC0,0x00,0x00,0x02,0xC0,0x00,0x00,0x02,0xC0,0x00,0x00,0x02,0xC0,0x00,0x00,
    0x02,0xC0,0x00,0x00,0x02,0xC0,0x00,0x00,0x02,0xC0,0x00,0x00,0x02,0xC0,0x00,0x00,
    0x00,0x21,0x00,0x21,0x00,0x21,0x00,0x21,0x00,0x21,0x00,0x21,0x00,0x21,0x00,0x21,
    0x00,0x21,0x00,0x21,0x00,0x21,0x00,0x21,0x00,0x21,0x01,0x20,0x00,0x21,0x01,0x20,
    0x0F,0xFF,0x00,0xFF,0x0F,0xFF,0x00,0xFF,0x0F,0xFF,0x00,0xFF,0x0F,0xFF,0x00,0xFF,
    0x03,0xFF,0x1C,0xE3,0x00,0xFF,0x7F,0x80,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,
    0xFC,0xFF,0xFC,0x00,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0x00,
    0xFF,0xFF,0xFF,0x00,0xFF,0xFE,0xFE,0x00,0xFF,0xF8,0xF8,0x00,0xFF,0xE0,0xE0,0x00,
    0x02,0xC0,0x00,0x00,0x02,0xC0,0x00,0x00,0xC2,0xC0,0xC0,0x00,0xC0,0xC2,0xC0,0x00,
    0xC0,0x82,0x80,0x00,0xC0,0x02,0x00,0x00,0xC0,0x02,0x00,0x00,0xC0,0x02,0x00,0x00,
    0x00,0x21,0x01,0x20,0x00,0x21,0x21,0x00,0x00,0x21,0x21,0x00,0x00,0x21,0x21,0x00,
    0x00,0x21,0x21,0x00,0x00,0x01,0x01,0x20,0x00,0x01,0x01,0x20,0x00,0x01,0x01,0x20,
    0xFF,0x80,0x80,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,
    0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,
    0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x21,
    0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x21,
    0x00,0x7F,0x7F,0x80,0x01,0x1E,0x1E,0xE1,0x03,0x00,0x00,0xFF,0x03,0x00,0x00,0xFF,
    0x03,0x00,0x00,0xFF,0x03,0x00,0x00,0xFF,0x03,0x00,0x00,0xFF,0x03,0x00,0x00,0xFF,
    0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,
    0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x03,0x03,0x00,0xFF,0x0F,0x0F,0x00,
    0xC0,0x02,0x00,0x00,0xC0,0x02,0x00,0x00,0xC0,0x02,0x00,0x00,0xC2,0x02,0x02,0x00,
    0xC2,0x02,0x02,0x00,0xC2,0xC2,0xC2,0x00,0xC2,0xC2,0xC2,0x00,0xC2,0xC2,0xC2,0x00,
    0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x21,
    0x00,0x00,0x00,0x21,0x00,0x20,0x20,0x01,0x00,0x20,0x20,0x01,0x00,0x20,0x20,0x01,
    0x03,0x00,0x00,0xFF,0x03,0x00,0x00,0xFF,0x03,0x00,0x00,0xFF,0x03,0x00,0x00,0xFF,
    0x03,0x00,0x00,0xFF,0x03,0x00,0x00,0xFF,0x03,0x00,0x00,0xFF,0x03,0x00,0x00,0xFF,
    0xFF,0x3F,0x3F,0x00,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0x00,0x3F,0xFF,0x3F,0x00,
    0x0F,0xFF,0x0F,0x00,0x03,0xFF,0x03,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,
    0xC2,0xC2,0xC2,0x00,0xC2,0xC2,0xC2,0x00,0xC2,0xC2,0xC2,0x00,0xC2,0xC2,0xC2,0x00,
    0xC2,0xC2,0xC2,0x00,0xC2,0xC2,0xC2,0x00,0xC2,0xC2,0xC2,0x00,0x02,0xC2,0x02,0x00,
    0x00,0x21,0x21,0x00,0x00,0x21,0x21,0x00,0x00,0x21,0x21,0x00,0x00,0x21,0x21,0x00,
    0x00,0x21,0x21,0x00,0x01,0x20,0x20,0x01,0x01,0x20,0x20,0x01,0x21,0x00,0x00,0x21,
    0x03,0x80,0x80,0x7F,0x03,0xE0,0xE0,0x1F,0x08,0xF0,0xF0,0x0F,0x3C,0xC0,0xC0,0x3F,
    0xFC,0x00,0x00,0xFF,0xFC,0x00,0x00,0xFF,0xFC,0x00,0x00,0xFF,0xFC,0x00,0x00,0xFF,
    0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,
    0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,
    0x02,0xC2,0x02,0x00,0x00,0xC2,0x00,0x00,0x00,0xC2,0x00,0x00,0x00,0xC2,0x00,0x00,
    0x00,0xC2,0x00,0x00,0x00,0xC2,0x00,0x00,0x00,0xC2,0x00,0x00,0x00,0xC2,0x00,0x00,
    0x21,0x00,0x00,0x21,0x21,0x00,0x00,0x21,0x21,0x00,0x00,0x21,0x21,0x00,0x00,0x21,
    0x21,0x00,0x00,0x21,0x21,0x00,0x00,0x21,0x21,0x00,0x00,0x21,0x21,0x00,0x00,0x21,
    0xFC,0x00,0x00,0xFF,0xFC,0x00,0x00,0xFF,0xFC,0x00,0x00,0xFF,0xFC,0x00,0x00,0xFF,
    0xFC,0x00,0x00,0xFF,0xFC,0x00,0x00,0xFF,0xFC,0x00,0x00,0xFF,0xFC,0x00,0x00,0xFF,
    0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0xC0,0xFF,0xC0,0x00,
    0xF0,0xFF,0xF0,0x00,0xFC,0xFF,0xFC,0x00,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0x00,
    0x00,0xC2,0x00,0x00,0x00,0xC2,0x00,0x00,0x00,0xC2,0x00,0x00,0x00,0xC2,0x00,0x00,
    0x00,0xC2,0x00,0x00,0x01,0xC2,0x00,0x00,0x00,0xC4,0x00,0x00,0xC0,0xC8,0xC0,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0xFF,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0xFC,0xFF,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x01,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0xFF,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0xFF,0xFF,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0xFF,0xFE,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0xFF,0x01,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0xFC,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x03,0x03,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0xFE,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x01,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0xFE,0x01,0x01,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0xFC,0xFC,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x21,0x00,0x00,0x21,0x21,0x00,0x00,0x21,0x21,0x00,0x00,0x21,0x21,0x00,0x00,0x21,
    0x21,0x00,0x00,0x21,0xE0,0x01,0x01,0xE0,0x10,0x01,0x01,0x10,0x00,0x09,0x09,0x00,
    0xFC,0x00,0x00,0xFF,0xFC,0x00,0x00,0xFF,0xF8,0x07,0x07,0xF8,0xE0,0x1F,0x1F,0xE0,
    0x80,0x7F,0x7F,0x80,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,
    0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0x00,
    0xFF,0xFC,0xFC,0x00,0xFF,0xF0,0xF0,0x00,0xFF,0xC0,0xC0,0x00,0xFF,0x00,0x00,0x00,
    0xD0,0xD0,0xD0,0x00,0xE0,0xE0,0xE0,0x00,0xFC,0xC3,0xC0,0x00,0xFC,0x03,0x00,0x00,
    0xFC,0x03,0x00,0x00,0xFC,0x03,0x00,0x00,0xFC,0x03,0x00,0x00,0xFC,0x03,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xFF,0x3F,0x00,0x0F,0xFF,0x0F,0x00,
    0x03,0xFF,0x03,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0x00,
    0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0x00,0x3F,0xFF,0x3F,0x00,0x0F,0xFF,0x0F,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0x00,
    0xFF,0xFC,0xFC,0x00,0xFF,0xF0,0xF0,0x00,0xFF,0xC0,0xC0,0x00,0xFF,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0xC3,0xC0,0x00,0xFC,0x03,0x00,0x00,
    0xFC,0x03,0x00,0x00,0xFC,0x03,0x00,0x00,0xFC,0x03,0x00,0x00,0xFC,0x03,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xC3,0xC0,0x00,0xFF,0x03,0x00,0x00,
    0xFF,0x03,0x00,0x00,0xFF,0x03,0x00,0x00,0xFF,0x03,0x00,0x00,0xFF,0x03,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0x3F,0x00,0xF0,0xF0,0x0F,0x00,
    0xFC,0xFC,0x03,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,
    0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0xC0,0xC0,0x3F,0x00,0xF0,0xF0,0x0F,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,
    0x03,0x00,0xFF,0x00,0x0F,0x00,0xFF,0x00,0x3F,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x03,0xFC,0x00,0xFF,0x03,0xFC,0x00,
    0xFF,0x03,0xFC,0x00,0xFF,0x03,0xFC,0x00,0xFF,0x03,0xFC,0x00,0xFF,0x03,0xFC,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x00,0xFC,0x03,0xFC,0x00,0xFC,0x03,
    0xFC,0x00,0xFC,0x03,0xFC,0x00,0xFC,0x03,0xFC,0x00,0xFC,0x03,0xFC,0x00,0xFC,0x03,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0xC0,0x00,0x0F,0x0F,0xF0,
    0x00,0x03,0x03,0xFC,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,
    0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0x3F,0x3F,0xC0,0x00,0x0F,0x0F,0xF0,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,
    0x03,0xFC,0xFC,0x03,0x0F,0xF0,0xF0,0x0F,0x3F,0xC0,0xC0,0x3F,0xFF,0x00,0x00,0xFF,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0xC0,0xC0,0x3F,0xFC,0x00,0x00,0xFF,
    0xFC,0x00,0x00,0xFF,0xFC,0x00,0x00,0xFF,0xFC,0x00,0x00,0xFF,0xFC,0x00,0x00,0xFF,
    0x00,0x05,0x05,0x00,0x00,0x03,0x03,0x00,0x00,0x3F,0x3F,0xC0,0x00,0x0F,0x0F,0xF0,
    0x00,0x03,0x03,0xFC,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,
    0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,
    0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0x3F,0x3F,0xC0,0x00,0x0F,0x0F,0xF0,
    0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,
    0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,
    0xFC,0x03,0x00,0x00,0xFC,0x03,0x00,0x00,0xFC,0x03,0x00,0x00,0xFC,0x03,0x00,0x00,
    0xE0,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,
    0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x01,0xFE,0x00,0x00,0x01,0xFE,0x00,0x00,0x01,0xFE,0x00,0x00,0x01,0xFE,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0xFC,0x03,0x00,0x00,0xFC,0x03,0x00,0x00,0xFC,0x03,0x00,0x00,0xFC,0x03,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0xFF,0x03,0x00,0x00,0xFF,0x03,0x00,0x00,0xFF,0x03,0x00,0x00,0xFF,0x03,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0xFF,0xFE,0x01,0x00,0xFF,0xFE,0x01,0x00,0xFF,0xFE,0x01,0x00,0xFF,0xFE,0x01,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0xFF,0x03,0xFC,0x00,0xFF,0x03,0xFC,0x00,0xFF,0x03,0xFC,0x00,0xFF,0x03,0xFC,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0xFC,0x00,0xFC,0x03,0xFC,0x00,0xFC,0x03,0xFC,0x00,0xFC,0x03,0xFC,0x00,0xFC,0x03,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x01,0x00,0x00,0xFF,0x01,0x00,0x00,0xFF,0x01,0x00,0x00,0xFF,0x01,0x00,0x00,0xFF,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0xFC,0x00,0x00,0xFF,0xFC,0x00,0x00,0xFF,0xFC,0x00,0x00,0xFF,0xFC,0x00,0x00,0xFF,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,
    0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,
    0x01,0x00,0x00,0xFF,0x01,0x00,0x00,0xFF,0x01,0x00,0x00,0xFF,0x01,0x00,0x00,0xFF,
    0x01,0x00,0x00,0xFF,0x01,0x00,0x00,0xFF,0x01,0x00,0x00,0xFF,0x01,0x00,0x00,0xFF,
    0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,
    0xFF,0x01,0x01,0x00,0xFF,0x07,0x07,0x00,0xFF,0x1F,0x1F,0x00,0xFF,0x7F,0x7F,0x00,
    0xC0,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0xC0,0x40,0x40,0x00,
    0xC0,0xC0,0xC0,0x00,0xC0,0xC0,0xC0,0x00,0xC0,0xC0,0xC0,0x00,0xC0,0xC0,0xC0,0x00,
    0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,
    0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,
    0x01,0x00,0x00,0xFF,0x01,0x00,0x00,0xFF,0x01,0x00,0x00,0xFF,0x01,0x00,0x00,0xFF,
    0x01,0x00,0x00,0xFF,0x01,0x00,0x00,0xFF,0x01,0x00,0xC0,0x3F,0x01,0x00,0xF0,0x0F,
    0x7F,0xFF,0x7F,0x00,0x1F,0xFF,0x1F,0x00,0x07,0xFF,0x07,0x00,0x01,0xFF,0x01,0x00,
    0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,
    0xC0,0xC0,0xC0,0x00,0xC0,0xC0,0xC0,0x00,0xC0,0xC0,0xC0,0x00,0xC0,0xC0,0xC0,0x00,
    0x40,0xC0,0x40,0x00,0x00,0xC0,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0xC0,0x00,0x00,
    0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,
    0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,
    0x04,0x00,0xFC,0x03,0x1E,0x00,0xFE,0x01,0x7E,0x00,0xFE,0x01,0xFE,0x00,0xFE,0x01,
    0xFE,0x00,0xFE,0x01,0xFE,0x00,0xFE,0x01,0xFE,0x00,0xFE,0x01,0xFE,0x00,0xFE,0x01,
    0x00,0xC0,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0xC0,0x00,0x00,
    0x00,0xC0,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xE0,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x01,0xFE,0x00,0x00,0x00,0x00,0x00,
    0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,
    0x01,0x00,0x01,0x00,0x03,0x00,0x03,0x00,0xFF,0x00,0xFF,0x00,0x03,0x00,0x03,0x00,
    0xFE,0x00,0xFE,0x01,0xFE,0x00,0xFE,0x01,0xFE,0x00,0xFE,0x01,0xFE,0x00,0xFE,0x01,
    0xFE,0x00,0xFE,0x01,0xFE,0x00,0xFE,0x01,0xFE,0x00,0xFE,0x01,0xFE,0x00,0xFE,0x01,
    0xC0,0xFF,0xC0,0x00,0xF0,0xFF,0xF0,0x00,0xFC,0xFF,0xFC,0x00,0xFF,0xFF,0xFF,0x00,
    0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0x00,
    0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,
    0xC0,0xFF,0xC0,0x00,0xF0,0xFF,0xF0,0x00,0xFC,0xFF,0xFC,0x00,0xFF,0xFC,0xFC,0x00,
    0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,
    0xFF,0x03,0x03,0x00,0xFF,0x0F,0x0F,0x00,0xFF,0x3F,0x3F,0x00,0x3F,0xFF,0x3F,0x00,
    0xFF,0x03,0x03,0x00,0xFF,0x0F,0x0F,0x00,0xFF,0x3F,0x3F,0x00,0xFF,0xFF,0xFF,0x00,
    0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0x00,
    0x80,0xFF,0x80,0x00,0xE0,0xFF,0xE0,0x00,0xF8,0xFF,0xF8,0x00,0xFE,0xFF,0xFE,0x00,
    0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0x00,
    0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,
    0x80,0xFF,0x80,0x00,0xE0,0xFF,0xE0,0x00,0xF8,0xFF,0xF8,0x00,0xFE,0xFD,0xFC,0x00,
    0xFF,0xFF,0x80,0x00,0xFF,0xFF,0xE0,0x00,0xFF,0xFF,0xF8,0x00,0xFF,0xFF,0xFE,0x00,
    0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0x00,
    0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,
    0xFF,0xFF,0x80,0x00,0xFF,0xFF,0xE0,0x00,0xFF,0xFF,0xF8,0x00,0xFF,0xFD,0xFC,0x00,
    0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,
    0xFC,0x00,0xFF,0x00,0xF0,0x00,0xFF,0x00,0xC0,0x00,0xFF,0x00,0xC0,0xC0,0x3F,0x00,
    0xFC,0x00,0xFF,0x00,0xF0,0x00,0xFF,0x00,0xC0,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,
    0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,
    0x7F,0x7F,0x80,0x00,0x1F,0x1F,0xE0,0x00,0x07,0x07,0xF8,0x00,0x01,0x01,0xFE,0x00,
    0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,
    0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,
    0x7F,0x7F,0x80,0x00,0x1F,0x1F,0xE0,0x00,0x07,0x07,0xF8,0x00,0x03,0x01,0xFE,0x00,
    0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,
    0xFC,0x03,0xFF,0x00,0xF0,0x0F,0xFF,0x00,0xC0,0x3F,0xFF,0x00,0x00,0xFF,0xFF,0x00,
    0xFC,0x03,0xFF,0x00,0xF0,0x0F,0xFF,0x00,0xC0,0x3F,0xFF,0x00,0x00,0xFF,0xFF,0x00,
    0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00
};


/*
 * Nametable data for the background
 */
const WORD menu_nam[] =
{
    0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007A,0x007E,
    0x007F,0x0080,0x0081,0x0082,0x007F,0x0080,0x0083,0x0084,
    0x0085,0x0080,0x0083,0x0084,0x0085,0x0080,0x0083,0x0084,
    0x0085,0x0080,0x0083,0x0084,0x0085,0x0080,0x0086,0x0087,
    0x0088,0x0089,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,
    0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,
    0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,
    0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008B,0x008C,
    0x008D,0x0089,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,
    0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,
    0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,
    0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008E,0x008F,
    0x0090,0x0091,0x0092,0x0093,0x0094,0x0094,0x0092,0x0095,
    0x0096,0x0096,0x0097,0x0098,0x0096,0x0096,0x0097,0x0098,
    0x0096,0x0096,0x0097,0x0099,0x009A,0x009A,0x009B,0x009C,
    0x009A,0x009A,0x009B,0x009C,0x009A,0x009A,0x009D,0x009E,
    0x009F,0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A1,0x00A5,
    0x00A6,0x00A7,0x00A8,0x00A9,0x00A6,0x00A7,0x00A8,0x00A9,
    0x00A6,0x00A7,0x00A8,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,
    0x00AB,0x00AC,0x00AD,0x00AE,0x00AB,0x00AC,0x00AF,0x00B0,
    0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B3,0x00B7,
    0x00B8,0x00B9,0x00BA,0x00BB,0x00B8,0x00B9,0x00BA,0x00BB,
    0x00B8,0x00B9,0x00BA,0x00BC,0x00BD,0x00BE,0x00BF,0x00C0,
    0x00BD,0x00BE,0x00BF,0x00C1,0x00BD,0x00BE,0x00C2,0x00C3,
    0x00C4,0x00C5,0x00C6,0x00C6,0x00C7,0x00C8,0x00C9,0x00C9,
    0x00CA,0x00CB,0x00CC,0x00CC,0x00CD,0x00CB,0x00CC,0x00CC,
    0x00CD,0x00CB,0x00CC,0x00CC,0x00CE,0x00CF,0x00CC,0x00CC,
    0x00CE,0x00CF,0x00D0,0x00D0,0x00D1,0x00CF,0x00D2,0x00D3,
    0x00D4,0x00D5,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,
    0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,
    0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,
    0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x00D6,0x00D7,
    0x00D8,0x00D9,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,
    0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,
    0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,
    0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x00DA,0x00DB,
    0x00DC,0x00DD,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,
    0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,
    0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,
    0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x00DE,0x00DF,
    0x00E0,0x00E1,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,
    0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,
    0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,
    0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x00E2,0x00E3,
    0x00E4,0x00E5,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,
    0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,
    0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,
    0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x00E6,0x00E7,
    0x00E8,0x00E9,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,
    0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,
    0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,
    0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x00EA,0x0078,
    0x00EB,0x00D5,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,
    0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,
    0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,
    0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x00EC,0x00ED,
    0x00EE,0x00EF,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,
    0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,
    0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,
    0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x00F0,0x00F1,
    0x00F2,0x00F3,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,
    0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,
    0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,
    0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x00F4,0x00F5,
    0x00F6,0x00F7,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,
    0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,
    0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,
    0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x00F8,0x00F9,
    0x00FA,0x00FB,0x00FC,0x00FD,0x00FE,0x00FF,0x0100,0x00FD,
    0x00FE,0x00FF,0x0100,0x00FD,0x0101,0x0102,0x0103,0x00FD,
    0x0101,0x0102,0x0104,0x0105,0x0106,0x0102,0x0107,0x0105,
    0x0108,0x0109,0x010A,0x010B,0x010C,0x0109,0x010D,0x010E,
    0x010F,0x0110,0x0111,0x0112,0x0113,0x0114,0x0111,0x0112,
    0x0113,0x0114,0x0111,0x0112,0x0113,0x0114,0x0111,0x0112,
    0x0113,0x0115,0x0116,0x0117,0x0118,0x0119,0x0116,0x0117,
    0x0118,0x011A,0x011B,0x011C,0x011D,0x011E,0x011F,0x0120,
    0x0121,0x0122,0x0123,0x0124,0x0125,0x0126,0x0123,0x0124,
    0x0125,0x0126,0x0123,0x0124,0x0125,0x0126,0x0123,0x0124,
    0x0125,0x0127,0x0128,0x0129,0x012A,0x012B,0x0128,0x0129,
    0x012A,0x012C,0x012D,0x012E,0x012F,0x0130,0x0131,0x0132,
    0x0133,0x0134,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,
    0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,
    0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,
    0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x0135,0x0136,
    0x0137,0x0138,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,
    0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,
    0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,
    0x008A,0x008A,0x008A,0x008A,0x008A,0x008A,0x0139,0x013A,
    0x00F6,0x013B,0x013C,0x013D,0x013E,0x013E,0x013C,0x013D,
    0x013E,0x013E,0x013C,0x013D,0x013E,0x013E,0x013C,0x013D,
    0x013E,0x013E,0x013C,0x013F,0x0140,0x0140,0x0141,0x0142,
    0x0140,0x0140,0x0141,0x0142,0x0140,0x0140,0x0143,0x0144,
    0x0145,0x0146,0x0147,0x0148,0x0145,0x0146,0x0147,0x0148,
    0x0149,0x014A,0x0147,0x0148,0x0149,0x014A,0x0147,0x0148,
    0x0149,0x014A,0x0147,0x0148,0x014B,0x014C,0x014D,0x014E,
    0x014F,0x0150,0x014D,0x014E,0x014F,0x0150,0x0151,0x0152
};


const BYTE menu_pal[] =
{
    0x00,0x10,0x30,0x3D,0x38,0x34,0x1B,0x20,0x2F,0x07,0x01,0x03,0x02
};


void bank1_load_bg()
{
    // The font patterns occupy the first 120 tiles, so load the
    // bg patterns directly following that
    pfn_vdp_blockcopy_to_vram(0x0F00, menu_pat, 219*32);

    // Load the nametabel data
    pfn_vdp_blockcopy_to_vram(MENU_NAMETABLE, (BYTE*)menu_nam, 1536);

    // Load the palette
    pfn_vdp_copy_to_cram(0, menu_pal, 16);
}

BYTE bank1_cheat_identify_type(BYTE addr_hi,WORD addr_lo)
{
	if(0x00 == addr_hi)
	{
		if((addr_lo >= 0xc000) && (addr_lo <= 0xdfff))//System ram
			return CT_RAM;
		else if((addr_lo >= 0xe000) /*&& (addr_lo <= 0xffff)*/)//Mirror ram
			return CT_RAM;
		else	//Should we allow these ?
		{
			if(0xfff8 == addr_lo)//3d glasses control
				return CT_RAM;
			else if((addr_lo >= 0xfff9) && (addr_lo <= 0xfffb))//3d glasses control - mirrors
				return CT_RAM;
			else if(0xfffc == addr_lo)//RAM mapper control
				return CT_RAM;
			else if(0xfffd == addr_lo)//Mapper slot 0
				return CT_RAM;
			else if(0xfffe == addr_lo)//Mapper slot 1
				return CT_RAM;
			else if(0xffff == addr_lo)//Mapper slot 2
				return CT_RAM;
		}
	}

	return CT_ROM;
}


#define LEFT_MARGIN 3
#define INSTRUCTIONS_Y 20

void waste_time()
{
   *(BYTE*)0xC000 = *(BYTE*)0xC000;
}

void bank1_print_hex(char* in)
{
    BYTE lo,hi;
	BYTE val = in[0];
	BYTE x = in[1];
	BYTE y = in[2];

    pfn_vdp_set_vram_addr(MENU_NAMETABLE + (x << 1) + (y << 6));

    hi = (val >> 4);
    lo = val & 0x0F;
    lo += 16; hi += 16;
    if (lo > 25) lo += 7;
    if (hi > 25) hi += 7;
    VdpData = hi; waste_time(); VdpData = 0; waste_time();
    VdpData = lo; waste_time(); VdpData = 0; waste_time();
}

void bank1_dump_hex(char* in)
{
	WORD addr = *(WORD*)in;
    BYTE *p = (BYTE*)addr;
    BYTE row,col,c,d;

    row = 7;
    for (; row < 15; row++)
    {
        pfn_vdp_set_vram_addr(MENU_NAMETABLE + (row << 6) + 8);
        for (col = 0; col < 8; col++)
        {
            c = *p++;
            d = (c >> 4);
            c &= 0x0F;
            c += 16; d += 16;
            if (c > 25) c += 7;
            if (d > 25) d += 7;
            VdpData = d; waste_time(); VdpData = 0; waste_time();
            VdpData = c; waste_time(); VdpData = 0; waste_time();
        }
    }
}

/*
	I			: Exit
	II			: Toggle addressing mode 8/4 bit
	
	4Bit 		addressing:
	UP			: Increase High Nybble
	DN			: Decrease High Nybble
	RB			: Increase Lo Nybble

	LB			: Decrease Lo Nybble

	8Bit		addressing:
	UP			: Increase
	DN			: Decrease
	LB			: Move left
	RB			: Move right
*/
void print_hex(BYTE val, BYTE x, BYTE y) 
{
	val=val,x=x,y=y;
	bank1_print_hex(&val);
}

BYTE bank1_cheat_inputbox(char* in)
{
	const char* msg = "SMS MYTH CHEAT EDITOR 0.1a";
	BYTE* field;
	BYTE fieldc;
	BYTE btn;
	BYTE haddr,addr,selection,a,b,upd,addressing;

	fieldc = *(in);

	if(0 == fieldc){return 0;}

	field = (BYTE*)in;
	addr = selection = 0;
	upd = 1;

	pfn_memset_asm(field,0,fieldc);
	puts_shared(msg,3 ,7,PALETTE1); 
	haddr = LEFT_MARGIN + (((22/2) - (fieldc/*>>1*/))) + 1;				/*Don't divide it since we need 1tile/char in dec form*/

	addressing = 0;														/*8bit mode*/

	while(1)
	{
		btn = pfn_pad1_get_2button();
		pad = btn & (~padLast);
		padLast = btn;

		if(pad&PAD_SW1){ break; }
		else if(pad & PAD_SW2)
		{
			addressing ^= 1;
			upd = 1;

		}

		switch(addressing)
		{
			case 0:

				if(pad & PAD_RIGHT)		{ if(addr < fieldc){if(++addr >= fieldc){addr=fieldc-1;};upd = 1;}	}
				else if(pad & PAD_LEFT) { if(addr > 0){--addr;upd = 1;}										}
				else if(pad & PAD_UP)	{ ++field[addr]; upd = 1;											}
				else if(pad & PAD_DOWN) { --field[addr]; upd = 1;											}
			break;	
			

			case 1:
				selection = field[addr];
				a = (selection >> 4);
				b = (selection & 0x0f);


				if(pad & PAD_UP)		{ if(a < 0x0f){++a; upd = 1;}										}

				if(pad & PAD_DOWN)		{ if(a > 0){--a;	upd = 1;}										}
				if(pad & PAD_RIGHT)		{ if(b < 0x0f){++b;	upd = 1;}										}

				if(pad & PAD_LEFT)		{ if(b > 0){--b;	upd = 1;}										}


				field[addr] = (a << 4) | b;
			break;
		}



		if(upd)
		{
			upd = 0;

			for(a = 0;a<fieldc;a++)		{ print_hex(field[a],haddr + (a << 1),12); }

			puts_shared("                       ",LEFT_MARGIN,13,PALETTE1); 
			puts_shared("^",haddr + (addr << 1) ,13,(addressing) ? PALETTE0 : PALETTE1);		/*Show locked/unlocked state*/ 



			if(addressing)

			{
				puts_shared(" I=EXIT UP/DN=INC/DEC HI 4Bit", LEFT_MARGIN-1, INSTRUCTIONS_Y, PALETTE1);
				puts_shared("II=MODE LF/RT=INC/DEC LO 4Bit", LEFT_MARGIN-1, INSTRUCTIONS_Y+1, PALETTE1);
			}

			else
			{
				puts_shared(" I=EXIT UP/DN=INC/DEC 8Bit   ", LEFT_MARGIN-1, INSTRUCTIONS_Y, PALETTE1);
				puts_shared("II=MODE LF/RT=MOVE CURSOR    ", LEFT_MARGIN-1, INSTRUCTIONS_Y+1, PALETTE1);
			}
		}

	}
	puts_shared("                             ", LEFT_MARGIN-1, INSTRUCTIONS_Y, PALETTE1);
	puts_shared("                             ", LEFT_MARGIN-1, INSTRUCTIONS_Y+1, PALETTE1);
	puts_shared("                         ",LEFT_MARGIN,16,PALETTE1);
	return 1;
}


#if 0

void bank1_sd_to_vram_aligned(WORD addr,WORD len)	//This can optimized by reading the WHOLE file to psram
{
	WORD bulk;
	WORD head;

	BYTE* p = (BYTE*)0xdb00;						//sector data go there

	head = 0;

	while(head < len)
	{
		if((head + 512) <= len) { bulk = 512; } else { bulk = len - head; }

		//All 512byte aligned!
		pfn_pf_read_sectors(0,0,1);
		pfn_vdp_blockcopy_to_vram(addr + head,p,512);
		head += bulk;
	}	
}

BYTE bank1_import_skin(const char* filename)
{
	BYTE b,c;
	WORD j,k,l,pat_len,nam_len,pal_len,fnt_len;
	BYTE* p = (BYTE*)0xdb00;						//sector data go there
	void (*grab_fs)(FATFS**) = pfn_pf_grab;
	FRESULT (*f_open)(const char*) = pfn_pf_open;
	FATFS* fs;

	Frame2 = BANK_PFF;

	grab_fs(&fs);
	if(!fs){return 0;}
	if(f_open(filename) != FR_OK) {return 0;}

	pfn_pf_read_sectors(0,0,1);
	pat_len = *(WORD*)&p[34];
	nam_len = *(WORD*)&p[36];
	pal_len = *(WORD*)&p[38];
	fnt_len = *(WORD*)&p[40];
				
	bank1_sd_to_vram_aligned(0x0F00,pat_len);
	bank1_sd_to_vram_aligned(MENU_NAMETABLE,nam_len);

	pfn_pf_read_sectors(0,0,1);
	pfn_vdp_copy_to_cram(0,p,16);

	pfn_disable_ints();
	pfn_vdp_set_vram_addr(0x0000);

	for(j = 0; j < fnt_len; j += 512)
	{
		if( (j + 512) <= fnt_len ) { k = 512; } else { k = fnt_len - j; }
		pfn_pf_read_sectors(0,0,1);

		for( l = 0; l < k; l++ )
		{
			b = p[l] ^ 0xFF;
			c = ~b;

			VdpData = c;
			VdpData = c;
			VdpData = c;
			VdpData = b; //0;
		}
	}

	pfn_enable_ints();
	return 1;
}

void f_adjust_stream_ptr(BYTE* addr_hi,WORD* addr_lo,WORD len)
{
	BYTE h = *addr_hi;
	WORD l = *addr_lo;

	while( (len & 1) && (len > 0) )
	{
		--len;
		++l;
		if(l == 0){ ++h; }
	}
	
	if(len > 0)
	{
		l += len;
		if(l == 0){ ++h; }
	}

	*addr_hi = h;
	*addr_lo = l;
}

void f_read_psram(BYTE* dst,BYTE* addr_hi,WORD* addr_lo,WORD len)
{
	pfn_neo2_psram_to_ram(dst,*addr_hi,*addr_lo,len);
	f_adjust_stream_ptr(addr_hi,addr_lo,len);
}

void f_write_psram(BYTE* src,BYTE* addr_hi,WORD* addr_lo,WORD len)
{
	pfn_neo2_ram_to_psram(*addr_hi,*addr_lo,src,len);
	f_adjust_stream_ptr(addr_hi,addr_lo,len);
}

BYTE bank1_import_ips(const char* filename)
{
	int ptr,end,send;
	BYTE src_bank,dst_bank,rle;
	WORD src_addr,dst_addr,len,bulk,head;
	BYTE* buf;
	void (*grab_fs)(FATFS**) = pfn_pf_grab;
	FRESULT (*f_open)(const char*) = pfn_pf_open;
	FATFS* fs;

	Frame2 = BANK_PFF;

	grab_fs(&fs);
	if(!fs){return 0;}
	if(f_open(filename) != FR_OK){return 0;}

	buf = (BYTE*)0xDB00;

	//Read Whole file to psram
	end = fs->fsize;
	send = end;
	end = (end + 512) & (~511);
	pfn_pf_read_sectors(0x02,0x0000,(end>>9));

	ptr = 5;//PATCH
	end = send - 3;//EOF

	src_bank = 0x02;
	src_addr = 0x0000;
	dst_bank = 0x00;
	dst_addr = 0x0000;

	while(ptr < end)
	{
		f_read_psram(buf,&src_bank,&src_addr,5); ptr += 5;
		dst_bank = buf[0];
		dst_addr = *(WORD*)&buf[1];	
		len = *(WORD*)&buf[3];	

		if(len == 0x0000)//RLE
		{
			f_read_psram(buf,&src_bank,&src_addr,3); ptr += 3;
			rle = buf[0];
			len = *(WORD*)&buf[1];
			pfn_memset_asm(buf,rle,(len >= 512) ? 512 : len);
	
			head = 0;
			while(head < len)
			{
				if( (head + 512) <= len ) { bulk = 512; } else { bulk = len - head; }
				f_write_psram(buf,&dst_bank,&dst_addr,bulk);
				head += bulk;
			}
		}
		else
		{	
			head = 0;
			while(head < len)
			{
				if( (head + 512) <= len ) { bulk = 512; } else { bulk = len - head; }
				f_read_psram(buf,&src_bank,&src_addr,bulk);
				f_write_psram(buf,&dst_bank,&dst_addr,bulk);
				head += bulk;
			}
			ptr += (int)len;
		}
	}

	return 1;
}
#endif

